package com.wltt.product.ahuthr.mapper;

import com.wltt.product.ahuthr.mapper.base.BaseMapper;
import com.wltt.product.ahuthr.model.bo.*;
import com.wltt.product.ahuthr.model.po.UserBasicPO;
import com.wltt.product.ahuthr.model.vo.QueryForEmploymentExamineReq;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * @ClassName: UserBasicPO
 * @Description: 人员基本信息 Dao
 * @Date: 2024-05-17 09:03:14
 * @Author yanggl
 */
public interface UserBasicMapper extends BaseMapper<UserBasicPO, Long> {

    /**
     * 查询
     *
     * @param listUserBasicBO
     * @return
     */
    List<ListUserBasicWithDeptBO> listUserBasicWithDept(UserBasicPO listUserBasicBO);

    /**
     * 查询用户详细信息
     *
     * @param userBasicPO
     * @return
     */
    List<ListUserDetailInfoBO> listUserDetailInfo(UserBasicPO userBasicPO);

    /**
     * 更新所有字段
     *
     * @param userBasicPO
     * @return
     */
    void updateAllColumnById(UserBasicPO userBasicPO);

    /**
     * 分页查询人员薪资
     *
     * @param userBasicPO
     * @return
     */
    List<ListUserSalaryBO> listUserSalary(UserBasicPO userBasicPO);

    /**
     * 分页查询未起薪人员
     *
     * @param userBasicPO
     * @return
     */
    List<ListUserSalaryBO> listUserNoSalary(UserBasicPO userBasicPO);

    /**
     * 根据工号查询
     *
     * @param jobNumber
     * @return
     */
    UserBasicPO queryByJobNumber(@Param("jobNumber") String jobNumber);

    /**
     * 根据身份证号查询
     *
     * @param userIdNumber
     * @return
     */
    List<UserBasicPO> queryByIdNumber(@Param("userIdNumber") String userIdNumber);

    /**
     * 查询聘期考核人员
     *
     * @param queryForEmploymentExamineReq
     * @return
     */
    List<QueryForEmploymentExamineBO> queryForEmploymentExamine(QueryForEmploymentExamineReq queryForEmploymentExamineReq);

    /**
     * 查询登记列表
     *
     * @param userBasicPO
     * @return
     */
    List<UserBasicPO> listUserBasicRegister(UserBasicPO userBasicPO);

    /**
     * 查询起薪列表
     *
     * @param userBasicPO
     * @return
     */
    List<UserBasicPO> listUserBasicStartSalary(UserBasicPO userBasicPO);

    /**
     * 查询审核列表
     *
     * @param userBasicPO
     * @return
     */
    List<UserBasicPO> listUserBasicAudit(UserBasicPO userBasicPO);
}